importPackage(Packages.de.elo.ix.client);
importPackage(Packages.de.elo.ix.jscript);
//@include lib_Class.js
//@include lib_sol.common.Config.js
//@include lib_sol.common.JsonUtils.js
//@include lib_sol.common.SordUtils.js
//@include lib_sol.common.IxUtils.js
//@include lib_sol.common.WfUtils.js
//@include lib_sol.common.CounterUtils.js
//@include lib_sol.common.AclUtils.js
//@include lib_sol.common.RepoUtils.js
//@include lib_sol.common.Template.js
//@include lib_sol.common.TranslateTerms.js
//@include lib_sol.common.ix.RfUtils.js
//@include lib_sol.common.ix.ActionBase.js
//@include lib_sol.common.ix.FunctionBase.js
//@include lib_sol.common.ExceptionUtils.js
//@include lib_sol.dev.ix.ActionUtils.js
var logger = sol.create("sol.Logger", { scope: "sol.dev.ix.actions.Deploy" });
/**
* Deploys / Undeploys a package.
*
* @eloix
* @requires sol.common.Config
* @requires sol.common.JsonUtils
* @requires sol.common.SordUtils
* @requires sol.common.IxUtils
* @requires sol.common.CounterUtils
* @requires sol.common.AclUtils
* @requires sol.common.RepoUtils
* @requires sol.common.Template
* @requires sol.common.TranslateTerms
* @requires sol.common.WfUtils
* @requires sol.common.ix.RfUtils
* @requires sol.common.ix.ActionBase
* @requires sol.common.ix.FunctionBase
* @requires sol.common.ix.functions.CopyFolderContents
* @requires sol.common.ix.functions.CopySordData
* @requires sol.common.ActionUtils
*/
sol.define("sol.dev.ix.actions.Deploy", {
extend: "sol.common.ix.ActionBase",
requiredConfig: ["ci", "user", "objId", "mode"],
/**
* @cfg {de.elo.ix.client.ClientInfo} ci (required)
*/
/**
* @cfg {de.elo.ix.client.UserInfo} user (required)
*/
/**
* @cfg {String} objId (required)
* Object ID of the selected package
*/
/**
* @cfg {String} mode (required)
* Deploy or undeploy selected package
*/
initialize: function (config) {
var me = this;
me.$super("sol.common.ix.ActionBase", "initialize", [config]);
me.config = sol.dev.ix.ActionUtils.loadConfigDev();
},
getName: function () {
return "Deploy";
},
process: function () {
var me = this,
name, flowId, wfTemplate, sord;
if ((!me.objId) || (!me.isPackage(me.objId))) {
if (me.mode == "deploy") {
me.addErrorEvent("sol.dev.ix.actions.Deploy.error.target", null, null, me.ci);
} else {
me.addErrorEvent("sol.dev.ix.actions.Undeploy.error.target", null, null, me.ci);
}
return;
}
if (me.mode == "undeploy") {
sord = sol.common.RepoUtils.getSord(me.objId);
if (sord.name.indexOf("undeployed") > -1) {
me.addErrorEvent("sol.dev.ix.actions.Undeploy.error.target", null, null, me.ci);
return;
}
}
name = me.buildElementName(me.mode);
wfTemplate = me.getWfTemplate(me.mode);
flowId = me.startWorkflow(me.objId, wfTemplate, name);
if (flowId) {
me.addWfDialogEvent(flowId, { objId: me.objId, title: name, dialogId: me.getName() });
me.addRefreshEvent(me.objId);
}
},
isPackage: function (objId) {
var sord;
sord = sol.common.RepoUtils.getSord(objId);
return sol.common.SordUtils.hasDocMask(sord, "ELO Business Solution");
},
/**
* @private
* @param {String} mode
* @return {String}
*/
getWfTemplate: function (mode) {
var me = this,
wfTemplate;
switch (mode) {
case "deploy":
wfTemplate = me.config.workflows.Deploy.workflowTemplateName;
break;
case "undeploy":
wfTemplate = me.config.workflows.Undeploy.workflowTemplateName;
break;
default:
wfTemplate = me.config.workflows.Deploy.workflowTemplateName;
}
return wfTemplate;
},
/**
* @private
* @return {Object}
*/
buildElementName: function (mode) {
var me = this,
prefix, wfName;
switch (mode) {
case "deploy":
prefix = me.getLocalizedString(me.ci, me.config.workflows.Deploy.workflowPrefixKey);
wfName = sol.create("sol.common.Template", { source: me.config.workflows.Deploy.workflowNameTemplate }).apply({ wfPrefix: prefix, mode: me.mode });
break;
case "undeploy":
prefix = me.getLocalizedString(me.ci, me.config.workflows.Undeploy.workflowPrefixKey);
wfName = sol.create("sol.common.Template", { source: me.config.workflows.Undeploy.workflowNameTemplate }).apply({ wfPrefix: prefix, mode: me.mode });
break;
default:
prefix = me.getLocalizedString(me.ci, me.config.workflows.Undeploy.workflowPrefixKey);
wfName = sol.create("sol.common.Template", { source: me.config.workflows.Undeploy.workflowNameTemplate }).apply({ wfPrefix: prefix, mode: me.mode });
}
return wfName;
}
});
/**
* @member sol.dev.ix.actions.Deploy
* @method RF_sol_dev_action_Deploy
* @static
* @inheritdoc sol.common.ix.FunctionBase#RF_FunctionName
*/
function RF_sol_dev_action_Deploy(ec, configAny) {
logger.enter("RF_sol_dev_action_Deploy", configAny);
var rfUtils = sol.common.ix.RfUtils,
config = rfUtils.parseAndCheckParams(ec, arguments.callee.name, configAny, "objId", "mode"),
Deploy, result;
config.ci = ec.ci;
config.user = ec.user;
Deploy = sol.create("sol.dev.ix.actions.Deploy", config);
result = Deploy.execute();
logger.exit("RF_sol_dev_action_Deploy", result);
return result;
}